home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / SPLUSDBX.ZIP;1 / SPLUSDBX.DOC < prev    next >
Encoding:
Text File  |  1993-10-01  |  46.4 KB  |  952 lines

  1.      
  2.      
  3.      
  4.      
  5.      
  6.      
  7.      
  8.      
  9.      
  10.      USING dbMAX WITH SHOPKEEPER PLUS 
  11.      
  12.      Supplimental Documentaion to DBX
  13.      
  14.      October 1 1993
  15.      
  16.      
  17.      
  18.      This Documentaion is Public Domain and may be used in anyway to
  19.      promote the use of standard .DBF data base programming.
  20.      
  21.      
  22.      
  23.      
  24.      
  25.      
  26.      
  27.      
  28.      
  29.      
  30.      
  31.      
  32.      
  33.      
  34.      
  35.      
  36.      
  37.      
  38.      INTRODUCTION. . . . . . . . . . . . . . . . . . . . . . . .4
  39.      
  40.      RUNNING dbMAX . . . . . . . . . . . . . . . . . . . . . . .4
  41.      
  42.      GETTING STARTED . . . . . . . . . . . . . . . . . . . . . .5
  43.      
  44.      EDITING A STORE .DBF. . . . . . . . . . . . . . . . . . . .6
  45.      
  46.      GETTING TO KNOW dbMAX . . . . . . . . . . . . . . . . . . .6
  47.      
  48.      DISPLAY STRUCTURE:. . . . . . . . . . . . . . . . . . . . .6
  49.      
  50.      MODIFY STRUCTURE: . . . . . . . . . . . . . . . . . . . . .7
  51.      
  52.      PRINT:. . . . . . . . . . . . . . . . . . . . . . . . . . .7
  53.      
  54.      COPY: . . . . . . . . . . . . . . . . . . . . . . . . . . .7
  55.      
  56.      SET FILTER: . . . . . . . . . . . . . . . . . . . . . . . .8
  57.      
  58.      APPEND: . . . . . . . . . . . . . . . . . . . . . . . . . .8
  59.      
  60.      PACK: . . . . . . . . . . . . . . . . . . . . . . . . . . .8
  61.      
  62.      ZAP:. . . . . . . . . . . . . . . . . . . . . . . . . . . .8
  63.      
  64.      GO: . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
  65.      
  66.      LOCATE: . . . . . . . . . . . . . . . . . . . . . . . . . .9
  67.      
  68.      CONDITIONALS: . . . . . . . . . . . . . . . . . . . . . . .9
  69.      
  70.      SHARE TOGGLE: . . . . . . . . . . . . . . . . . . . . . . .9
  71.      
  72.      COPY RECORD:. . . . . . . . . . . . . . . . . . . . . . . .9
  73.      
  74.      PASTE RECORD: . . . . . . . . . . . . . . . . . . . . . . .9
  75.      
  76.      COPY FIELD: . . . . . . . . . . . . . . . . . . . . . . . 10
  77.      
  78.      PASTE FIELD:. . . . . . . . . . . . . . . . . . . . . . . 10
  79.      
  80.      CREATE NEW INDEX: . . . . . . . . . . . . . . . . . . . . 10
  81.      
  82.      CONDITIONAL INDEXES:. . . . . . . . . . . . . . . . . . . 10
  83.      
  84.      OPEN INDEX FILE:. . . . . . . . . . . . . . . . . . . . . 10
  85.      
  86.      CLOSE ALL INDEXES . . . . . . . . . . . . . . . . . . . . 11
  87.      
  88.      REINDEX:. . . . . . . . . . . . . . . . . . . . . . . . . 11
  89.      
  90.      UNIQUE TOGGLE INDEX:. . . . . . . . . . . . . . . . . . . 11
  91.      
  92.      INDEX ORDER:. . . . . . . . . . . . . . . . . . . . . . . 11
  93.      
  94.      SEEK: . . . . . . . . . . . . . . . . . . . . . . . . . . 11
  95.      
  96.      SOFTSEEK TOGGLE:. . . . . . . . . . . . . . . . . . . . . 11
  97.      
  98.      SWITCH WINDOW:. . . . . . . . . . . . . . . . . . . . . . 12
  99.      
  100.      SIZE/MOVE WINDOW: . . . . . . . . . . . . . . . . . . . . 12
  101.      
  102.      MAXIMIZE WINDOW:. . . . . . . . . . . . . . . . . . . . . 12
  103.      
  104.      MINIMIZE WINDOW:. . . . . . . . . . . . . . . . . . . . . 12
  105.      
  106.      JUMP: . . . . . . . . . . . . . . . . . . . . . . . . . . 12
  107.      
  108.      WINDOW COLUMNS: . . . . . . . . . . . . . . . . . . . . . 12
  109.      
  110.      DELETE COLUMN:. . . . . . . . . . . . . . . . . . . . . . 13
  111.      
  112.      INSERT COLUMN:. . . . . . . . . . . . . . . . . . . . . . 13
  113.      
  114.      RESTORE COLUMNS:. . . . . . . . . . . . . . . . . . . . . 13
  115.      
  116.      FREEZE COLUMNS: . . . . . . . . . . . . . . . . . . . . . 13
  117.      
  118.      COLUMN HEADING: . . . . . . . . . . . . . . . . . . . . . 13
  119.      
  120.      MULTI-USER TOGGLE:. . . . . . . . . . . . . . . . . . . . 14
  121.      
  122.      SHOW DELETED RECORDS TOGGLE:. . . . . . . . . . . . . . . 14
  123.      
  124.      DATA DRIVER:. . . . . . . . . . . . . . . . . . . . . . . 14
  125.      
  126.      SET FILTER: . . . . . . . . . . . . . . . . . . . . . . . 14
  127.      
  128.      SET RELATION: . . . . . . . . . . . . . . . . . . . . . . 14
  129.      
  130.      EDIT PARAMETERS:. . . . . . . . . . . . . . . . . . . . . 15
  131.      
  132.      SAVE PARAMETERS:. . . . . . . . . . . . . . . . . . . . . 15
  133.      
  134.      LOAD PARAMETERS:. . . . . . . . . . . . . . . . . . . . . 15
  135.      
  136.      ENVIRONMENT:. . . . . . . . . . . . . . . . . . . . . . . 15
  137.      
  138.      HELP: . . . . . . . . . . . . . . . . . . . . . . . . . . 15
  139.      
  140.      SOME DATA BASE TERMS: . . . . . . . . . . . . . . . . . . 16
  141.      
  142.      NETWORKS. . . . . . . . . . . . . . . . . . . . . . . . . 17
  143.      
  144.      TIPS & TRICKS . . . . . . . . . . . . . . . . . . . . . . 17
  145.      
  146.      KNOWN PROBLEMS. . . . . . . . . . . . . . . . . . . . . . 18
  147.      
  148.      ETC.. . . . . . . . . . . . . . . . . . . . . . . . . . . 19
  149.      
  150.      "FREEWARE"/"SHAREWARE" LICENSE AGREEMENT. . . . . . . . . 20
  151.           
  152.      dbMAX(tm) Version 1.31
  153.      Copyright (c) 1991-1993
  154.      All rights reserved.
  155.      
  156.      
  157.      INTRODUCTION
  158.      ============
  159.      
  160.      dbMAX is an xBASE utility that will allow complete multi-user access to
  161.      the SHOPKEEPER PLUS  databases.  The program uses a menu bar
  162.      type menu system with Brief(R)-style hot keys and can browse
  163.      databases in up to 250 moveable, sizable windows.  dbMAX was written
  164.      by  David A. Kennedy and is included with SHOPKEEPER PLUS for your
  165.      convenience, it is not a product of Smith & Morton. dbMAX was created
  166.      using a Clipper programming library by David Kennedy for the purpose
  167.      of promoting his library.  dbMAX is freeware.  dbMAX is a powerful data
  168.      base program that can perform functions that go far beyond
  169.      SHOPKEEPER PLUS. 
  170.      
  171.      Despite it's power dbMAX is one of the simplest data base programs
  172.      you can use. SHOPKEEPER PLUS holds much of its merchandise,
  173.      customer, and supplier information in database files which have the
  174.      extensions of .DBF.   SHOPKEEPER PLUS uses the .DBF format
  175.      because it is a standard format for storing data.  When the decision to
  176.      use this format was made, we did not expect that so many Sysops
  177.      were not familiar with the .DBF format. 
  178.      
  179.      See the README.DOC for legal and technical stuff from David Kennedy.
  180.      
  181.      RUNNING dbMAX
  182.      =============
  183.      
  184.      The only file you need to run the program is DBX.EXE.  All other files are
  185.      optional.  A missing DBX.INI file will cause a warning message to
  186.      appear. Select Options|Save to make this warning go away.
  187.      
  188.      To run dbMAX, type DBX at the DOS prompt.  DBX /? will list all the
  189.      command line parameters that can be used.
  190.      
  191.      Whatever SHOPKEEPER PLUS files you want to edit should be placed in
  192.      the same directory as dbMAX, you can place the DBX program in your
  193.      SHOPKEEPER PLUS directory if that is where you keep your .DBF files.  
  194.      
  195.      REMEMBER:  Most of the SHOPKEEPER PLUS .DBF files have a
  196.      companion file with the extension .DBT.  These files must be kept
  197.      together, if you move a .DBF file, be sure to move it's .DBT file with it.
  198.      
  199.           Syntax:    DBX [database] [index] [switches]
  200.      
  201.           where:     database = name of database, extension not required.
  202.           Switches:  /C<n>    = columns to display      (default=80)     
  203.      
  204.      There are many other switches and option available, however they are
  205.      not needed for the simple operation of editing, viewing or creating
  206.      SHOPKEEPER PLUS .DBF & .DBT files.
  207.      
  208.      
  209.      GETTING STARTED
  210.      ================
  211.      
  212.      As you should know from the SHOPKEEPER PLUS instruction manual,
  213.      the first thing that must be edited to use SHOPKEEPER PLUS is the
  214.      SUPPLIER.DBF file.  Record #1 should be edited to reflect your name
  215.      and information.
  216.      
  217.      To edit the SUPPLIER.DBF, type DBX from your DOS prompt.  Press
  218.      ATL-F to bring up the FILES menu, select OPEN by moving the highlight
  219.      bar, or by selecting the highlighted letter choice.  This will bring up a
  220.      directory of files, select SUPPLIER.DBF be moving the highlight bar
  221.      using the arrow keys of your keyboard, hitting enter selects. 
  222.      
  223.      This will open a window and bring up the suppliers listings (registered
  224.      version includes supplier's names and addresses, demo does not have
  225.      this info entered).  The red highlight bar will be positioned on the NAME
  226.      field of the first record and the cursor will be positioned on the first
  227.      character. In the border at the top of the screen the FIELD name is
  228.      displayed. First field in this data base is COMPANY.   You are now in the
  229.      edit mode and may begin typing your name, as your company is the
  230.      first supplier.  The first supplier is recognized by SHOPKEEPER PLUS as
  231.      the Sysop.  To move to the next field, use the right arrow key.  If you
  232.      have a one line street address, leave the field ADDRESS1 blank and go
  233.      to the ADDRESS2 field.
  234.      
  235.      A complete explanation of what information goes in what field is detailed
  236.      in the SHOPKEEPER PLUS manual.
  237.      
  238.      As you move the highlight bar down you'll notice the record number in
  239.      the upper left hand corner of the window changes to tell you which
  240.      record you are in, and how many total records there are in the data
  241.      base.
  242.      
  243.      To add a new supplier to the data base just move the highlight bar
  244.      down past the last entered record.  The next field will come up blank,
  245.      ready for you to fill in.
  246.      
  247.      After you are done editing/adding the records in your data base, press
  248.      ESC and select SAVE, or press ALT-F and select CLOSE.  Your changes
  249.      have now been saved and you can now bring up another file, or exit the
  250.      program.
  251.      
  252.      EDITING A STORE .DBF
  253.      ====================
  254.      
  255.      This works just like editing the suppliers .DBF.  You bring up the file and
  256.      navigate through the program with the menu bar, hitting enter to
  257.      continue to the next field. he descriptions of the merchandise are stored
  258.      in a MEMO field.  When you get to that field, and "<MEMO>" is
  259.      highlighted, hit enter.  The will take you into the .DBT file where the
  260.      description for this item is stored.  You may type whatever information
  261.      you want displayed in this window.  When you are done, press CTRL-W
  262.      to save the description, pressing ESC will exit WITHOUT SAVING. 
  263.      That's all there is to it, just keep entering your items and hitting enter to
  264.      continue to the next record.
  265.      
  266.      
  267.      GETTING TO KNOW dbMAX
  268.      ======================
  269.      
  270.      dbMAX includes a hypertext help system,  Help! Hypertext Viewer,
  271.      Version 4.16.  This program can guide you through all the menu options
  272.      in dbMAX.  Most of these features are not needed for the operation of
  273.      you online shopping system, learning these other features can increase
  274.      the power of SHOPKEEPER PLUS.  This section uses terms that should
  275.      be familiar to those with data base experience.   If you need to know
  276.      more about data bases, check out your local library.  There are many
  277.      books on the subject, the book you need depends on what you want to
  278.      do with your DBFs. It is not necessary to learn any of this to operate
  279.      SHOPKEEPER PLUS.  Also, while you read the following documentation,
  280.      please keep in mind that dbMAX was written with a VERY powerful
  281.      clipper library that was designed to be used by multiple users in a
  282.      network environment.  Therefore many of the references to shared files
  283.      do not apply to your use of the program.
  284.      
  285.      DISPLAY STRUCTURE:
  286.      The Display function not only displays but allows you to edit, so be
  287.      careful! dbMAX creates a temporary file on the designated temporary
  288.      drive. This file ends with the extension .STR (structure data bases).   The
  289.      structure data-base can be browsed and edited like any other.  If the
  290.      Delete .STR file option is set, then the file will automatically be deleted
  291.      by dbMAX when you quit the program.  If the Exit with Save option is
  292.      used and the .STR file is deleted, the restore environment process will
  293.      not work since  the .STR file can not be opened again. 
  294.      
  295.      MODIFY STRUCTURE:
  296.      From the FILES menu you can Modify Structure, ALT-M.  This function
  297.      allows you to change the structure of the database.  Making changes to
  298.      some of the fields used by SHOPKEEPER PLUS can cause the program
  299.      to abort, or cause a loss of the data SHOPKEEPER PLUS  has collected. 
  300.      You can however, safely add addition fields to the SHOPKEEPER PLUS 
  301.      data bases.  By adding such fields you can create your own
  302.      applications, create reports and much more. dbMAX allows you to
  303.      modify the field name, field type (Character, Numeric, Date, Logical,
  304.      Memo), and length.  The decimal places for numeric fields can also be
  305.      specified.  Fields are deleted by pressing <Del> and inserted by
  306.      pressing <Ins>.  Fields are moved by pressing <Ctrl-Up> or
  307.      <Ctrl-Dn> (or <+>/<->).  A backup file contains the original data
  308.      (databases saved as .BAK, memo files as .TBK). Changing a field type
  309.      without revising the name will cause an  error (the old data will be saved
  310.      in the backup).  If you need to change only a field type, copy the data to
  311.      an SDF text file, revise the structure, then append the text file back in. 
  312.      This window cannot be tabbed out of like other browse windows. 
  313.      Pressing <Esc> aborts the modify process.  Modifying will cause any
  314.      filters and relations to be lost.   
  315.      
  316.            REMEMBER: Do not change the structure of fields used by
  317.      SHOPKEEPER PLUS.  If you do not understand what you are doing, do
  318.      not try it with out first backing up your files.
  319.      
  320.      PRINT:
  321.      Prints out all the records in the database, based on currently active
  322.      filters, indexes, and column layout.  Any visible deleted  records will be
  323.      marked with an asterisk to show that the record is deleted.  
  324.      
  325.      When the Print option is selected a menu will appear listing all available
  326.      printer ports and a file redirection option.  If the output is sent to a file
  327.      that already exists, the data will be appended onto the end of the file. 
  328.      
  329.      
  330.      COPY:
  331.      Copies records to another file based on currently set filters, indexes,
  332.      and/or a specified condition.  If an SDF (SDF files are plain ASCII text
  333.      files that can be appended into database files or created from database
  334.      files) or Delimited option is selected, the records will be copied to a text
  335.      file;  otherwise, the records are copied to a database file.  If the file 
  336.      already exists, dbMAX will ask if the file should be overwritten.   To copy
  337.      records, select either the Copy All or the Copy Browse options.  All
  338.      copies all database fields while Browse copies only  the fields that are
  339.      included in the browse window.  Copy can  accept FOR, WHILE, and
  340.      NEXT parameters to specify the records  that are to be copied.  If the
  341.      WHILE or NEXT clauses are used,  copying starts from the current
  342.      cursor location and moves down  through the database; otherwise, all
  343.      records are affected.
  344.      
  345.      SET FILTER:
  346.      Sets a filter for the database, such that only records matching the
  347.      condition will be shown.  The filter expression is retained so it can be
  348.      edited at a later time to change the expression.  If <Esc> is pressed,
  349.      the filter condition will be removed and the  database will return to
  350.      normal.  When scrolling through filtered records a severe performance 
  351.      degradation may be noticed, especially when scrolling new records 
  352.      onto the screen.  Pressing a key repeatedly in this case will cause your
  353.      computer to seem to lock up, although it is actually  re-reading data
  354.      over and over.  Be patient.
  355.      
  356.      APPEND:
  357.      You can append records from another database into the current active
  358.      database.  This is especially useful for adding two .DBF together, such
  359.      as when a supplement of new products .DBF is released and you want
  360.      to add the items to an existing .DBF. Three types of appends can be
  361.      selected:  DBF  - appends from one database to another.  dbMAX can
  362.      append records from the active database.  SDF - appends from a text
  363.      file into the database.  Delimited - appends from a comma-delimited text
  364.      file into the database.  Append can accept FOR, WHILE, and NEXT
  365.      parameters to specify the records that are to be appended. 
  366.      
  367.      PACK:
  368.      It is most important to understand that SHOPKEEPER PLUS *WILL*
  369.      display deleted records to the caller unless the .DBF is "packed". 
  370.      Packing permanently removes all deleted records from an exclusive
  371.      database file.  If the database is shared, dbMAX will allow you to attempt
  372.      to pack the file anyway.  If you do want to pack a shared data-base,
  373.      dbMAX will try to use the file exclusively, perform the pack, and re-use
  374.      the file in shared mode.  If this cannot be done (usually when another
  375.      person is using the file), then packing will not be performed.  If the
  376.      database has an associated memo file, dbMAX will ask you if you want
  377.      to pack the database only, the memo file only, or  both.  Your product
  378.      descriptions are contained in the memo fields.
  379.      
  380.      ZAP:
  381.      Permanently removes all records from an exclusive database file.  If the
  382.      database is shared, dbMAX will allow you to attempt to zap  the file
  383.      anyway.  If you do want to zap a shared database, dbMAX  will try to
  384.      use the file exclusively, zap the file, and then re-use the file in shared
  385.      mode.  If this cannot be done (usually if another person is using the file),
  386.      then zapping will not be performed. 
  387.      
  388.      GO:
  389.      This command will open a small window allowing you to enter the
  390.      record number to go to. 
  391.      
  392.      LOCATE:
  393.      Locate will find the next record in the database matching the expression
  394.      you enter.  Additional conditions can be specified with the FOR, WHILE,
  395.      and NEXT clauses.  When Locate is selected again, the last condition
  396.      entered will be retained, so that the next record matching the condition
  397.      can be located.  Locate starts from the current cursor location and
  398.      moves down through the database. 
  399.      
  400.      CONDITIONALS:
  401.      FOR   - a logical expression that restricts the function to acting on only
  402.      the records meeting the condition.
  403.      
  404.      WHILE - a logical expression that restricts the function to acting on each
  405.      record while the condition is met, and stopping as soon as it is not. 
  406.      
  407.      NEXT  - restricts the function to acting on only the next "n" records. 
  408.      
  409.      
  410.      SHARE TOGGLE:
  411.       This command will switch the database open mode.  A file that is 
  412.      opened exclusively will be re-opened in shared mode, while a shared file
  413.      will be re-opened in exclusive mode.  When using  certain commands
  414.      like Append, Pack, Zap, Insert blank, or Modify,  dbMAX temporarily
  415.      switches shared files to exclusive mode automatically to perform the
  416.      command, so use of this toggle is generally not required.  Any filters or
  417.      relations that have been set will be lost.   Files opened in a network
  418.      environment will be "faster" when opened exclusively, but no one else
  419.      will be able to use the file.  
  420.      
  421.      COPY RECORD:
  422.      This command will copy an entire record into the clipboard.  Once
  423.      copied, the record can be pasted over another record in the data-base
  424.      or even into a different database, with the Paste Record command. 
  425.      
  426.      PASTE RECORD:
  427.      This command will paste the contents of the clipboard into the active
  428.      database.  When pasting into a different database than was copied into
  429.      the clipboard, only the fields with the same name will get data pasted
  430.      into them.  Pasting does not insert records into the database (unless
  431.      you are adding a new record), but overwrites existing records instead. 
  432.      
  433.      COPY FIELD:
  434.      This command copies the contents on the highlighted field into 
  435.      clipboard.  Once copied, the data can be pasted into any other field or
  436.      database by using the Paste Field command. The function is very useful
  437.      when you have many similar items to add to a store .DBF.  It allows you
  438.      to copy the descriptions over to the next record, then you only need to
  439.      edit in the differences.
  440.      
  441.      PASTE FIELD:
  442.      This command will paste data from the clipboard into any database field. 
  443.      Pasting character data into a date or numeric field will be allowed but
  444.      not accepted unless the character data is composed of numbers.  
  445.      
  446.      CREATE NEW INDEX:
  447.      It is highly recommended that you not index your data bases.
  448.      SHOPKEEPER PLUS  does not use the dbMAX indexes and can cause
  449.      confusion as to how the merchandise will be displayed within
  450.      SHOPKEEPER PLUS. When this option is selected, a window will pop
  451.      up containing a list of all fields in the database, including related fields. 
  452.      Another window will contain an input field for the index expression. 
  453.      Selecting a field from the Field window will place the field into the
  454.      Expression window.  <Tab> flips between the two windows. Once a
  455.      valid expression is entered, the new index file can be named and the
  456.      index will be created.  Any other index file in use will be retained.  If
  457.      available, specifying indexing conditions will create a special conditional
  458.      index file. 
  459.      
  460.      CONDITIONAL INDEXES:
  461.      Whenever any of the conditional input fields are filled in, dbMAX will
  462.      create an index which will contain only those records which match the
  463.      condition.  In this way, use of filters can be reduced or eliminated. 
  464.      Conditional indexes are not compatible with the normal index format. 
  465.      Programs that are not written to take advantage of conditional indexes
  466.      will not be able to access these files properly.
  467.      
  468.      OPEN INDEX FILE:
  469.      Pops up a directory list so another index can be selected.  To specify a
  470.      new path and file skeleton, press the <Tab> key to move to the input
  471.      field.  Selecting a drive letter will switch you to the default directory in
  472.      that drive.  dbMAX will warn you if the selected index file has an invalid
  473.      key (doesn't match the active database) and will not open the file.  Other
  474.      open indexes will be retained while the new index is activated. 
  475.      
  476.      CLOSE ALL INDEXES
  477.      When this option is selected, all open indexes for the active database
  478.      will be closed and the database returned to natural order. 
  479.      
  480.      REINDEX:
  481.      The Reindex option will re-create all the open index files for the active
  482.      database.  Please note:  any indexes created with a while condition or
  483.      with the descending order or unique options set, if applicable, will not
  484.      be reindexed properly!  These options are not saved as part of the index
  485.      and therefore will be lost.  Also, if you reindex with the Unique toggle
  486.      set, all indexes will contain only unique keys.  
  487.      
  488.      Care should be used when reindexing on a network.  If another user has
  489.      opened the index file being recreated, errors can occur.  
  490.      
  491.      UNIQUE TOGGLE INDEX:
  492.      This option is toggled on and off (a check mark means on) by pressing
  493.      <Enter>.  When on, any indexes created with the Create New Index
  494.      function will only include unique index keys.   When the index is created,
  495.      if two or more records have identical keys, only the first is included in
  496.      the index. 
  497.      
  498.      INDEX ORDER:
  499.      This option will pop up a list of all the index files associated with the
  500.      active database.  Highlight the index order to be made active (or
  501.      "Natural Order" for no index) and press <Enter>.  Note: if using a data
  502.      driver that supports multiple orders within a single index file, each order
  503.      will be displayed and can be selected as the active order. 
  504.      
  505.      To delete an order from a multiple order index, select the order and then
  506.      press the <Del> key.  The index file should be rebuilt using the reindex
  507.      function to reclaim disk space.
  508.      
  509.      SEEK:
  510.      Searches for a specific record based on the index key, if any.  This
  511.      search is nearly instantaneous.  If the search key is only partially filled
  512.      out, then the first occurrence of the portion of specified key will be
  513.      found. 
  514.      
  515.      SOFTSEEK TOGGLE:
  516.      This option is toggled on and off (a check mark means on) by pressing
  517.      <Enter>.  When on, the Seek command will position the cursor at the
  518.      record that most closely matches the data you are seeking.  If an exact
  519.      match is not found, dbMAX will beep as a warning.  When softseek is
  520.      off, the cursor will be moved only if an exact match is found. 
  521.      
  522.      SWITCH WINDOW:
  523.      The <Tab> and <Sh-Tab> keys cycle forward or backward through the
  524.      browse windows.  The <Tab> key is also frequently used to flip
  525.      between dialogue boxes and between input fields. 
  526.      
  527.      SIZE/MOVE WINDOW:
  528.      When this command is invoked, the browse window will be moveable
  529.      and sizeable.  The following keys are used in this mode: 
  530.      
  531.                                                                        
  532.             <LeftArrow>                      shrink window to the left 
  533.             <RightArrow>                     expand window to the right
  534.             <UpArrow>                        shrink window up          
  535.             <DownArrow>                      expand window down        
  536.             <Ctrl-UpArrow> or <Ctrl-Home>    move window up            
  537.             <Ctrl-DownArrow> or <Ctrl-End>   move window down          
  538.             <Ctrl-LeftArrow>                 move window left          
  539.             <Ctrl-RightArrow>                move window right         
  540.             <Enter>                          quit and save window      
  541.             <Esc>                            quit and restore window   
  542.      
  543.      MAXIMIZE WINDOW:
  544.      The Maximize command expands the browse window to its maximum
  545.      size (same as initial startup size).  This window can be made even larger
  546.      if desired by using the Size/Move Window command. 
  547.      
  548.      MINIMIZE WINDOW:
  549.      Minimize shrinks the browse window to its smallest size, based on the
  550.      width of the first column in the browse window.  This window can be
  551.      made even smaller if desired by using the Size/Move Window command.
  552.      
  553.      JUMP:
  554.      The Jump command opens a window containing a list of all the columns
  555.      currently being browsed.  Highlighting a field and then pressing
  556.      <Enter> will cause the browse cursor to jump to the selected column. 
  557.      
  558.      WINDOW COLUMNS:
  559.      Window Columns allows modification of the browse columns.  While
  560.      Delete Column and Insert Column work only on one column at a time,
  561.      this command allows complete modification of any or all columns. 
  562.      When selected, two windows will appear, one listing all the possible
  563.      database fields (including related database fields) and the other listing
  564.      all current browse columns.  The Browse Columns window can be
  565.      modified by pressing <Del> to delete a column or <Ins> to insert a
  566.      column.  Pressing <Enter> allows a column to be edited.  Please note
  567.      that when entering a column, any valid expression can be entered, such
  568.      as a field name, a function, or both.  For example, "RECNO()" is valid, as
  569.      is "DIAMETER*LENGTH".  Use the <Tab> key to flip between windows. 
  570.      Pressing <Ctrl-Up> and <Ctrl-Down> (or <LeftArrow> and
  571.      <RightArrow>) will move a field up and down in the Browse Columns
  572.      list.  Pressing <Enter> in the Available Fields window will paste the field
  573.      into the current input field in the Browse Columns window.  
  574.      
  575.      DELETE COLUMN:
  576.      Deletes the currently highlighted column in the browse window. To
  577.      retrieve the column later, the Insert Column, Window Columns, or
  578.      Restore Columns function must be used. 
  579.      
  580.      INSERT COLUMN:
  581.      Inserts a column into the browse window to the left of the highlighted
  582.      column position.  Insert pops up a list of all available database fields
  583.      and a window allowing any valid expression to be entered.  A valid
  584.      expression can be a field name, and xBASE function, or both.  xBASE
  585.      expressions entered into a browse column cannot be edited in the
  586.      browse mode. The <Tab> key switches between windows. 
  587.      
  588.      RESTORE COLUMNS:
  589.      If columns have been deleted, inserted, or changed in any way, the
  590.      restore option will return the browse window columns back to their
  591.      original contents.  Restore will not modify the window dimensions, only
  592.      the columns. 
  593.      
  594.      FREEZE COLUMNS:
  595.      The freeze command allows you to have a number of browse columns 
  596.      present in the window at all times.  When selected, a input window will
  597.      appear allowing you to enter the number of columns to freeze.  Entering
  598.      a number larger than the number of columns that can fit on the screen
  599.      will be ignored, otherwise the leftmost "n" columns will remain in the
  600.      window while all other columns scroll normally.  Entering 0 will turn off
  601.      any frozen columns.  
  602.      
  603.      COLUMN HEADING:
  604.      This command allows revision of the column heading and width.
  605.      Entering semi-colons into the heading will cause the heading to contain
  606.      multiple lines.  The column width defaults to 0, meaning the column is
  607.      as wide as the heading or the data requires. Setting the column width
  608.      will force the column to be displayed in the specified width, possibly
  609.      truncating data or column headings.  Truncated data will scroll in the
  610.      edit mode. 
  611.      
  612.      MULTI-USER TOGGLE:
  613.      Pressing <Enter> turns this option on and off (a check mark means
  614.      on).  When on, databases are opened in shared mode; otherwise, they
  615.      are opened in exclusive mode.  Toggling this option will not change the
  616.      mode of databases that have already been opened!   
  617.      
  618.      SHOW DELETED RECORDS TOGGLE:
  619.      This option is toggled on and off by pressing the <Enter> key (a check
  620.      mark means on).  When on, deleted records can be seen in the
  621.      databases being browsed (a "deleted" message will appear in the top
  622.      right corner of the browse window).  When off, deleted records are
  623.      hidden from view and cannot be browsed or printed.  If a filter is set and
  624.      Show Deleted Records is off, the browse window may act unpredictably,
  625.      although the data will not be affected. 
  626.      
  627.      DATA DRIVER:
  628.      To select the data driver, press <Enter> until the desired driver 
  629.      appears.  The possible available data drivers include: 
  630.      
  631.        DRIVER:  DATABASE TYPES SUPPORTED:  INDEX TYPES:    
  632.      
  633.        DBFNTX     dBASE/Clipper/FoxPro       Clipper .NTX        
  634.        DBFNDX     dBASE/Clipper/FoxPro       dBASE III .NDX   
  635.        DBFCDX     dBASE/Clipper/FoxPro       FoxPro .IDX and .CDX
  636.        DBFMDX     dBASE/Clipper/FoxPro       dBASE IV .MDX       
  637.        DBFSIX     dBASE/Clipper/FoxPro       FoxPro .IDX and .CDX
  638.      
  639.      Once selected, the driver is used from that point on when opening
  640.      databases; in other words, opening a database using the DBFNTX driver
  641.      and then selecting the DBFNDX driver will not allow use of .NDX files for
  642.      the previously selected database, only subsequent data bases.
  643.      
  644.      SET FILTER:
  645.      Sets a filter for the database, such that only records matching the
  646.      condition will be shown.  The filter expression is retained so it can be
  647.      edited at a later time to change the expression.  If <Esc> is pressed,
  648.      the filter condition will be removed and the database will return to
  649.      normal. 
  650.      
  651.      When scrolling through filtered records a severe performance
  652.      degradation may be noticed, especially when scrolling new records onto
  653.      the screen.  Pressing a key repeatedly in this case will cause your
  654.      computer to seem to lock up, although it is actually re-reading data over
  655.      and over.  Be patient. 
  656.      
  657.      SET RELATION:
  658.      Selecting this option displays a list of all currently set relations for the
  659.      database, if any.  Relations can then be added, edited, or deleted. 
  660.      When Add is selected, two windows will open allowing the relation
  661.      expression to be entered.  Use <Tab> to switch between windows. 
  662.      Once entered, a list of available child databases will pop up so the
  663.      currently active parent database can be related to the child database. 
  664.      Edit allows the relation expression to be revised, while Delete removes
  665.      the relation from the list of established relations.
  666.      
  667.      EDIT PARAMETERS:
  668.      This option allows you to change most of the dbMAX operating
  669.      parameters and screen colors for the current session.  Unless the
  670.      parameters are saved with the Save Parameters option, they will be lost
  671.      when dbMAX is exited.
  672.      
  673.      SAVE PARAMETERS:
  674.       This option saves all the current operating parameters to the  default
  675.      .INI file.  You can save the changes to a different file  if desired, so that
  676.      various configurations can be maintained. 
  677.      
  678.      LOAD PARAMETERS:
  679.      This option loads all the dbMAX parameters from the selected .INI file. 
  680.      This is often used when a bad set of parameters were entered in the
  681.      Edit Parameters window. 
  682.      
  683.      ENVIRONMENT:
  684.      The dbMAX environment refers to the current set of opened data-bases
  685.      and indexes, well as filters, relations, and window size and locations, but
  686.      excluding the configuration parameters.  The dbMAX program has the
  687.      ability to save the environment so that previous sessions can be
  688.      restored without having to resize windows, reset filters and relations, etc. 
  689.      
  690.      By default, a file named DBX.ENV is saved in the dbMAX directory
  691.      whenever the Exit with Save option (<F10>) or Save Environment
  692.      command (<Sh-F10>) is used.  The environment file name can be
  693.      changed so that many different environments can be saved. To resume
  694.      a dbMAX session use the Load Environment command, or run dbMAX
  695.      without any command line parameters or with the /V parameter.  If a
  696.      parameter other than /V is used, dbMAX will assume you want a new
  697.      environment.  A saved environment can be  loaded any number of
  698.      times, and can be deleted by saving with no databases open.
  699.      
  700.      HELP:
  701.      The dbMAX Hypertext Help system is called by selecting the Help
  702.      options on the menu.  It can also be called on the command line by
  703.      typing HELP in the directory where the dbMAX files reside.  Pressing
  704.      <F1> will pop-up a help screen showing the available keys that can be
  705.      used within the Help system. All hypertext words and phrases
  706.      highlighted in red or shown in cyan are "hyperlinks".  Pressing <Enter>
  707.      (or clicking the mouse) when a hyperlink is highlighted will call up a help
  708.      screen for that topic.  Returning back to the previous screen can be
  709.      done by pressing <Esc> or selecting the "Previous" hyperlink. 
  710.      
  711.      Pressing <F10> or selecting the "Quit" hyperlink will quit the Help
  712.      system and return to DOS or to dbMAX. 
  713.      
  714.      
  715.      SOME DATA BASE TERMS:
  716.      
  717.      "Shared":  In a network environment, databases that are shared can be
  718.      accessed by any number of users.  Any user can change data, add and
  719.      delete records, etc. Index files are always opened in shared mode. 
  720.      Exclusive - databases that are exclusively opened can only be accessed
  721.      by one person at a time.  If another user tries to open the file, they will
  722.      get an error.
  723.      
  724.      "Char/text":   This field will hold text and numbers.  Another type of field
  725.      is "numeric", it
  726.      will only allow you to enter numbers in this field.  
  727.      
  728.      "Logic": The logic field is a field that works like a marker, you can "tag" it
  729.      on or off.  
  730.      
  731.      "Date": The date format field that can hold a date you enter, or you can
  732.      set most data
  733.      base programs to automatically insert today's date.
  734.      
  735.      "Memo": the memo field allows you to enter a block of text up to 512
  736.      characters.  This
  737.      text is actually stored in a separate file with the same filename as the
  738.      .DBF except the
  739.      extension is .DBT.
  740.      
  741.      "Structure": The size of the fields, type of field and the way you arrange
  742.      them forms the  STRUCTURE of your data base.
  743.      
  744.      dbMAX can access all your SHOPKEEPER PLUS .DBF files, allowing
  745.      you to create reports address labels and just about any other kind of
  746.      report you could want.
  747.      
  748.      If you change your mind about tracking your inventory, you can use
  749.      your data base program to globally replace the contents of the field with
  750.      the character that you desire.  
  751.      
  752.      Global replacements can also be used set the DISCount field to
  753.      discount all merchandise in a particular store. When the sale is over you
  754.      just replace the numbers in the field with "00".
  755.      
  756.      
  757.      NETWORKS
  758.      ========
  759.      
  760.      When running dbMAX in a network environment, BE SURE to set the
  761.      temporary files drive to a LOCAL DRIVE or your personal drive/directory! 
  762.      The temporary files drive is not the same as the one specified by
  763.      //SWAPPATH and //TEMPPATH above.  Having these three parameters
  764.      point to a RAM disk will provide the best performance.
  765.      
  766.      Installing dbMAX on a network is not recommended since other users
  767.      can overwrite your initialization and environment files.  This can be
  768.      worked around by running dbMAX from a batch file as follows:
  769.      
  770.      DBX /U<userdrive:\DBX.INI> /V<userdrive:\DBX.ENV> /TC:\ %1 %2 %3
  771.      %4 %5 
  772.      
  773.      TIPS & TRICKS
  774.      =============
  775.      
  776.      - When entering expressions into dbMAX that contain references to a
  777.      related  database, you MUST use the work area number instead of the
  778.      alias name.  The area number is displayed after the file name on the
  779.      help line. 
  780.      
  781.      - Since dbMAX does not use report form (.FRM) files, users who want to
  782.      print   a "canned" report can use the Window|Heading (F3),
  783.      Window|Column, and environment functions to set up a dbMAX session
  784.      and then save it to an  environment file (.ENV).  The file can be reloaded
  785.      (Ctrl-F10) and the database printed when required.  Grouping is not
  786.      possible.  Subtotals will be calculated for all numeric columns
  787.      automatically; to prevent totals, convert the column to a character
  788.      type by using Window|Heading and the STR() function.
  789.      
  790.      - Opening database files in exclusive mode on networks will noticeably  
  791.      improve performance when browsing, indexing, filtering, etc.  F4 toggles 
  792.      the open mode.
  793.      
  794.      - The About option (on the Help menu) will indicate the amount of RAM  
  795.      available to dbMAX on the help bar.
  796.      
  797.      - To run dbMAX under Windows(tm), add a DBX.PIF file that runs
  798.      dbMAX using the following recommended parameters:
  799.      
  800.        Program Filename:     dbx.exe
  801.        Optional Parameters:  /r25 /uc:\dbmax\windows.ini
  802.        Video Memory:         Text
  803.        Memory Requirements:  KB Required: 640   KB Desired: -1      
  804.        EMS Memory:           KB Required: 256   KB Limit:  -1
  805.        XMS Memory:           KB Required: 256   KB Limit:   256
  806.        Display Usage:        Windowed
  807.        Execution:            Background
  808.        Close Window on Exit
  809.      
  810.        If you want, set the Multitasking Foreground Priority to 1000+.  A
  811.      dbMAX   icon, DBMAX.ICO, is supplied for use with Windows.
  812.      
  813.        If using Blinker 2.00 or earlier make sure you set BLINKER OVERLAY  
  814.      PAGEFRAME OFF and BLINKER CACHE EMS 0,100%.  Alternatively, the
  815.      Program   Filename in the dbMAX .PIF should be changed to reference
  816.      the following batch file:
  817.      
  818.           @echo off
  819.           set blinker=/op0 /ce0,100
  820.           dbx %1 %2 %3 %4 %5 %6 %7 %8 %9
  821.           set blinker=
  822.      
  823.      
  824.      KNOWN PROBLEMS
  825.      ==============
  826.      
  827.      The software is intended to be used by knowledgeable xBASE
  828.      users/programmers and as a result error handling has been minimized
  829.      to reduce the size of the .EXE file and speed up the program.
  830.      
  831.      1)  Use of BOTH dBASE(R) and any Clipper(R)-based program such as
  832.      dbMAX to edit databases can lead to corrupted files!  DO NOT use
  833.      dBASE to edit, append, or pack records.  dBASE places end-of-file
  834.      markers at the end of database files while Clipper does not:  this can
  835.      lead to files that will contain records that cannot be accessed by
  836.      SHOPKEEPER PLUS.  Also, .NTX index files and record-locking
  837.      schemes are not compatible between the two systems and not used by
  838.      SHOPKEEPER PLUS.  To be safe, do not use dBASE to change any
  839.      database that is used by dbMAX (or any other Clipper system).
  840.      
  841.      
  842.      2)  Changing files in a network environment may cause other users to
  843.      experience problems.  For example, revising a database with an index
  844.      active while someone else is revising it without the index will cause the
  845.      index file to become corrupted and, as a result, may cause the database
  846.      to become corrupted also.  For best results when editing a database on
  847.      a network, each user must be sure to open all indexes associated with
  848.      that file before making any changes.
  849.      
  850.      3)  Entering an illegal filename or pathname will cause a run-time error.   
  851.      Opening a corrupted database or index may cause a run-time error. 
  852.      
  853.      4)  Browsing the same database in two windows can lead to problems if
  854.      you do something like ZAP the database in one window and then try to
  855.      browse the other (can only happen on local drives).
  856.      
  857.      5)  Entering invalid color settings may cause menu items to be invisible.  
  858.      Quitting dbMAX and re-running the program may restore the original
  859.      colors if they were not saved; otherwise, you will have to delete the
  860.      DBX.INI  file to restore the default settings.
  861.      
  862.      6)  Using DOS versions earlier than 3.30 may cause multi-user problems
  863.      on networks due to lack of support for COMMIT and is not supported. 
  864.      
  865.      7)  Some users have reported that their PCs lock-up occasionally during
  866.      swapping (swaps occur when shelling to DOS and calling hyperhelp). 
  867.      This appears to be due to an EMS conflict between QEMM and
  868.      Overlay().  Using the BADEMS switch in the DBX.INI file will fix the
  869.      problem; use of the //X switch may also be required.
  870.      
  871.      8)  Environment (.ENV) files created with versions of dbMAX prior to 1.25 
  872.      are not compatible with this version!
  873.      
  874.      9)  The Utils|Copy command will allow you to copy a database over
  875.      another open database.  This will definitely corrupt the target file.
  876.      
  877.      
  878.      ETC.
  879.      ====
  880.      
  881.      If you have any comments/suggestions/fixes for dbMAX, send them to
  882.      David Kennedy, via CompuServe Mail (76300,2164) or regular mail
  883.      ONLY (no phone calls, please!) and I'll gladly consider them.  Please
  884.      keep in mind that the main goal for dbMAX is maximum performance
  885.      with minimum bells/whistles/crap (I hope I've done
  886.      this).
  887.      
  888.      
  889.      "FREEWARE"/"SHAREWARE" LICENSE AGREEMENT
  890.      =======================================
  891.      =
  892.      
  893.      FREEWARE  - the dbMAX program is considered to be free, in that as
  894.      long as 
  895.      the distribution of the program is performed as detailed below, no
  896.      payments
  897.      or other licensing agreements need to be made. 
  898.      
  899.      If you would like to register your copy of dbMAX, send US$20  and in
  900.      return I will send you a master diskette with a compiled  and linked .EXE 
  901.      (capable of accessing Clipper, dBASE III/IV, and FoxPro indexes) and
  902.      automated installation program, so that dbMAX can be used by people
  903.      without the Clipper compiler or even knowledge of what a compiler is. 
  904.      This disk also includes the Clipper 5.01 and 5.2 .OBJs.  Also included is
  905.      automatic notification via CompuServe e-mail/postcard when the next    
  906.      version of dbMAX is available.
  907.      
  908.      SHAREWARE - By sending a check or money order for US$35, I will
  909.      send you a disk containing a linked .EXE (capable of accessing Clipper,
  910.      dBASE III/IV, and FoxPro indexes), the INSTALL.EXE file along with the
  911.      Builder source code, and the source code for dbMAX and the hyperhelp
  912.      text.  You will also receive notification via             e-mail or postcard
  913.      when the next version of dbMAX is available. 
  914.      
  915.      The source generally conforms to Computer Associates' coding
  916.      guidelines and is fully commented where necessary, exactly like
  917.      FIXUP.PRG and MYFUNC.PRG.  Recipients of the source are asked not
  918.      to distribute the code or modified executables to any other person.
  919.      
  920.                                           * * *
  921.      
  922.      This software is an original work by David A. Kennedy and is released
  923.      into the public domain with restrictions.  The software, with the exception
  924.      of the source code, can be USED, COPIED, and DISTRIBUTED on an
  925.      UNLIMITED BASIS, as long as no fee is charged for its use, copying, or
  926.      distribution.  All rights to the program worldwide are reserved by David
  927.      A. Kennedy. Unauthorized duplication, distribution, modification, or
  928.      decompilation of this software is expressly prohibited.
  929.      
  930.      You are encouraged to copy and share dbMAX with others.  PLEASE
  931.      distribute all the files in the original .ZIP.  This is this a REQUIREMENT
  932.      for distribution as SHAREWARE.
  933.      
  934.      THE SOFTWARE AND ACCOMPANYING DOCUMENTATION ARE
  935.      PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  THE ENTIRE
  936.      RISK TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS
  937.      ASSUMED BY YOU.
  938.      
  939.      David A. Kennedy will not be liable for any special, incidental,
  940.      consequential, indirect or similar damages due to the loss of data, loss
  941.      of business profits, business interruption or any other reason, even if
  942.      David A. Kennedy has been advised of the possibility of such damages. 
  943.      
  944.      This is a legal agreement between you, the end user, and David A.
  945.      Kennedy. By using or distributing this package, you are agreeing to be
  946.      bound by the terms of this Agreement.  If you do not agree to the terms
  947.      of this agreement promptly destroy (erase) all copies of the software.
  948.      
  949.      The Help! Engine (HELP.EXE) is property of Flambeaux Software, Inc.
  950.      and specifically IS NOT placed into the public domain.  All rights
  951.      worldwide are reserved by Flambeaux Software, Inc.  Modifications to
  952.      the Help! Engine are prohibited.